package com.zlc.workflow.core.task.service;

import com.zlc.common.common.entity.PageVo;
import com.zlc.common.core.process.model.vo.StoneProcessInstanceVo;
import com.zlc.common.model.process.instance.FlowInstanceVo;
import com.zlc.common.model.process.instance.QueryInstanceParam;
import com.zlc.common.model.process.task.FlowTaskVo;
import com.zlc.common.model.process.task.QueryTaskParam;
import com.zlc.workflow.core.task.model.AddTaskActorParam;
import com.zlc.workflow.core.task.model.ApproveHistTaskVo;
import com.zlc.workflow.core.task.model.TransferTaskParam;
import com.zlc.workflow.core.task.model.WorkflowTraceVo;

import java.util.List;

public interface TaskService {

    /**
     * 查询流程跟踪数据
     */
    WorkflowTraceVo getTraceList(String processId,String processInstanceId);

    /**
     * 查询待办任务列表
     */
    PageVo<FlowTaskVo> queryTaskTodo(QueryTaskParam param);

    /**
     * 查询流程列表
     */
    PageVo<FlowInstanceVo> queryInstancePage(QueryInstanceParam param);


    /**
     * 查询已办任务列表
     */
    PageVo<FlowTaskVo> queryTaskHistory(QueryTaskParam param);

    /**
     * 查询指定流程的历史审批人
     */
    List<ApproveHistTaskVo> getTaskApprovalHist(String processInstanceId);

    /**
     * 为节点任务添加审批人  加签
     */
    void addTaskActor(AddTaskActorParam param);

    /**
     * 转办任务
     */
    void transferTask(TransferTaskParam param);
}
